1. Field of the Invention
This invention generally relates to digital document printing and, more particularly, to a system and method for a user-defined printer usage administrative policy to select a printer, from a pool of printers, in response to determined print job characteristics.
2. Description of the Related Art
FIG. 1a is a diagram depicting an automated printer selection system (prior art). Conventionally, users and administrators have managed the selection of a printer from a printer pool either manually by the user, or by an automated process using arbitrary criteria. For example, conventional printer pooling software selects a printer based on one or more of the following criteria:
1. Availability—the first printer available to print, so that an idle printer is preferred over a busy printer or a printer reporting an error state. Examples of this kind of software include Microsoft Windows NT/2K® printer pooling and Sharp EZ Cluster® v1.0.
2. Speed—how fast the printer will complete the job, based upon the printer's specification-defined speed. That is, based upon criteria such as a printer's advertised page per minute (ppm) specification. Sharp EZ Cluster® v1.0 is another example of printer pooling software using speed as a selection criteria.
3. Load—the balancing of the load of all pending printer jobs is considered, and new print jobs are assigned so as to maintain an even load distribution for better overall system output performance. Examples of printer pooling software using this selection criterion are Sharp EZ Cluster® v1.0 and Calisto® Cluster Printing.
4. Locality—the printer closest to the user or client device sourcing the print job is selected.
5. Capability—the printer with the best capabilities is selected. As used herein, printer capabilities are printer attributes such as stapling, duplex printing, or resolution (dpi). Again, Sharp EZ Cluster® v1.0 is an example.
The above methods of printer pooling suffer in that:
1. More abstract selection mechanisms cannot be implemented. For example, the above systems cannot select a printer based upon a minimum cost policy.
2. The conventional printer selection systems are driven by printer specifications. For example, if speed is the selection criterion, the printer with the highest ppm specification is chosen, regardless of how fast the printer can actually process a particular print job.
3. The printer usage selection criteria are not programmable. For example, in a system where speed is a primary selection factor, a particular printer with a high ppm, but with a small RAM buffer, cannot be programmed for use with small print jobs only, where buffering is not an issue.
As noted above, conventional pool printing software does not support an administrated, user-defined utilization policy, such as a cost purpose that assigns printers to tasks on the basis of lowering the overall printing costs of the network. For example, an organization may have a pool of four printers, consisting of a cheap (cost of operation) black and white (BW), an expensive BW printer, a cheap color printer, and an expensive color printer. In this example, the organization may dictate a usage policy, such as:                Text only documents, such as email are printed on the cheap BW printer.        BW duplex (two-sided) documents of over 20 pages are printed on the expensive BW printer.        Simple color documents, including colored fonts, are printed on the cheap color printer.        Color photography is printed on the expensive color printer.        
FIG. 1b is a diagram depicting a manual printer selection policy (prior art). One method to manage this policy is by voluntary user compliance. That is, each user has the responsibility of manually associating each task to the appropriate printer. The “eye” in the picture represents a user manually selecting a printer on the basis of a perceived policy. This method has many drawbacks:
1. Users may intentionally not follow the policy, and the system may lack any means of policy enforcement.
2. Users may interpret the policy incorrectly.
3. Users may not be informed of the policy or policy changes.
FIG. 1c is a diagram depicting a semi-manual printer selection policy (prior art). In this method some of the above-noted human error issues are addressed with a partial administration of the printer selection process. In one implementation of this method, the administrator sets up print queues in a managed shared printing environment, where the print queues reflect the current selection policy. For example, using the selection policy described in the explanation of FIG. 1b, the print queues are named:                email;        duplex, over—20pages;        non_photo_color; and,        photo_quality_color.        
Thus, a user can correctly implement the policy by directing the print jobs to the proper print queue. While this method is an improvement over the system of FIG. 1b, it still suffers in that the selection is manual and, therefore, still prone to human error and lack of enforcement.
It would be advantageous if printer pooling selection criteria could be made programmable by the user.
It would be advantageous if printer pooling selection criteria could be made programmable for an individual printer.
It would be advantageous if user-defined printer usage criteria could be defined for a printer pooling selection policy.